﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Reflection;
using System.Text;
using System.Threading.Tasks;

namespace _010_反射和特性
{
    class Program
    {
        static void Main(string[] args)
        {
            // 每一个类对应一个type对象，这个type对象存储了这个类的数据、成员
            MyClass my = new MyClass();
            Type type = my.GetType();   //通过对象获取这个对象所属类的Type对象
            
            // 常用方法
//            Console.WriteLine(type.Name);   //获取类名
//            Console.WriteLine(type.Namespace);//命名空间
//            Console.WriteLine(type.Assembly);//程序集
//            FieldInfo[] array = type.GetFields();//获取public字段
//            PropertyInfo[] array2 = type.GetProperties();//获取public属性
//            MethodInfo[] array3 = type.GetMethods();//获取public方法

            Assembly assem = type.Assembly; //通过类的type对象获取他所在的程序集
            Console.WriteLine(assem.FullName);//获取程序集名称
            Type[] types = assem.GetTypes();//获取程序集中所有的类

            //Assembly assembly = Assembly.Load("xxxx");  //参数程序集名字





            Console.ReadKey();
        }
    }
}
